package com.shop.entity;

import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.math.BigInteger;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 短信日志 实体类。
 *
 * @author 彭新才 
 * @since 2024-10-15
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "短信日志")
@Table(value = "shop_sms")
public class ShopSms implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 自增id
     */
    @Id(keyType = KeyType.Auto)
    @Schema(description = "自增id")
    private BigInteger id;

    /**
     * 短信平台（aliyun 阿里云、等等...）
     */
    @Schema(description = "短信平台（aliyun 阿里云、等等...）")
    private String platform;

    /**
     * 状态（0未发送，1已发送，2已失败）
     */
    @Schema(description = "状态（0未发送，1已发送，2已失败）")
    private Boolean status;

    /**
     * 手机号码
     */
    @Schema(description = "手机号码")
    private String mobile;

    /**
     * 短信签名
     */
    @Schema(description = "短信签名")
    private String signName;

    /**
     * 短信模板
     */
    @Schema(description = "短信模板")
    private String templateValue;

    /**
     * 短信模板变量（数组则json字符串存储）
     */
    @Schema(description = "短信模板变量（数组则json字符串存储）")
    private String templateVar;

    /**
     * 请求接口地址
     */
    @Schema(description = "请求接口地址")
    private String requestUrl;

    /**
     * 请求参数（数组则json字符串存储）
     */
    @Schema(description = "请求参数（数组则json字符串存储）")
    private String requestParams;

    /**
     * 响应参数（数组则json字符串存储）
     */
    @Schema(description = "响应参数（数组则json字符串存储）")
    private String responseData;

    /**
     * 失败原因
     */
    @Schema(description = "失败原因")
    private String reason;

    /**
     * 耗时时间（单位秒）
     */
    @Schema(description = "耗时时间（单位秒）")
    private Long tsc;

    /**
     * 添加时间
     */
    @Schema(description = "添加时间")
    private Long addTime;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private Long updTime;

}
